Efficient Heap Management for Declarative Data Parallel Programming on Multicores
نویسندگان
چکیده
Declarative data parallel programming for shared memory multiprocessor systems implies paradigm-specific demands on the organisation of memory management. As a key feature of declarative programming implicit memory management is indispensable. Yet, the memory objects to be managed are very different from those that are predominant in general-purpose functional or object-oriented languages. Rather than complex structures of relatively small items interconnected by references, we are faced with large chunks of memory, usually arrays, which often account for 100s of MB each. Such sizes make relocation of data or failure to update arrays in-place prohibitively expensive. To address these challenges of the data parallel setting, the functional array language SaC employs continuous garbage collection via reference counting combined with several aggressive optimisation techniques. However, we have observed that overall memory performance does not only rely on efficient reference counting techniques, but to a similar extent on the underlying memory allocation strategy. As in the general memory management setting we can identify specific demands of the declarative data parallel setting on heap organisation. In this paper, we propose a heap manager design tailor-made to the needs of concurrent executions of declarative data parallel programs whose memory management is based on reference counting. We present runtime measurements that quantify the impact of the proposed design and relate it to the performance of several different general purpose heap managers that are available in the public domain.
منابع مشابه
Dynamic Memory Management in the Loci Framework
Resource management is a critical concern in high-performance computing software. While management of processing resources to increase performance is the most critical, efficient management of memory resources plays an important role in solving large problems. This paper presents a dynamic memory management scheme for a declarative high-performance data-parallel programming system — the Loci fr...
متن کاملEfficient Organization of Control Structures in Distributed Implementations
A new technique for the management of control structures in distributed implementations of dynamic process systems is presented. Instead of storing the runtime stacks of parallel processes as linked lists of function blocks in a heap structure, the local stacks of several parallel processes, which are executed on the same processor element, are stored in an interleaved manner on a single physic...
متن کاملKeshav Pingali Debate Whether Explicitly Parallel Programming Is a Necessary Evil for Applications Programmers, Assess the Current State of Parallel Programming Models, and Discuss Possible Routes toward Finding the Programming Model for the Multicore
Moderator’s introduction: Arvind Do applications programmers need to write explicitly parallel programs? Most people believe that the current method of parallel programming is impeding the exploitation of multicores. In other words, the number of cores in a microprocessor is likely to track Moore’s law in the near future, but the programming of multicores might remain the biggest obstacle in th...
متن کاملTransactional Distributed Memory Management for Cluster Operating Systems
Memory management is a crucial component of distributed operating systems. Our paper presents design and functionality of the memory management package for Rainbow OS (a 64-Bit transactional distributed memory (TDM) operating system for PC-clusters). To support efficient parallel computing on distributed objects several consistency models and multicore operation is provided. Even when using rel...
متن کاملAn Or-Parallel Prolog Execution Model for Clusters of Multicores
Logic Programming languages, such as Prolog, offer a great potential for the exploitation of implicit parallelism. One of the most distinguishable sources of implicit parallelism in Prolog programs is orparallelism. Or-parallelism arises from the simultaneous evaluation of a subgoal call against the clauses that match that call. Arguably, or-parallel Prolog systems based on the environment copy...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007